package com.hundsun.cprs.yyt.service.match.service;

import java.util.Collection;
import java.util.concurrent.Executor;

import com.hundsun.cprs.yyt.service.match.core.TradeCenter;
import com.hundsun.cprs.yyt.service.match.dto.EntrustRequest;
import com.hundsun.cprs.yyt.service.trade.domain.TradeCancelFlow;
import com.hundsun.cprs.yyt.service.trade.domain.TradeRollbackFlow;

public interface TradeMatchInnerService {
    
    void handleEntrust(EntrustRequest entrust);
    
    /**
     * 委托单撤回
     * @param applyRollback
     */
    void rollbackEntrust(TradeRollbackFlow applyRollback);

    /**
     * 委托单撤单
     * @param cancelFlow
     */
    void cancelEntrust(TradeCancelFlow cancelFlow);
    
    /**
     * 得到当前服务处理的撮合
     * 
     * @return
     */
    Collection<TradeCenter> getHandleTradeCenters();
    
    
    /**
     * 重置匹配中心卖方队列新老用户权重
     * @param matchNewWeight
     */
    void resetMatchingSellQueueWeight(String matchNewWeight);
    
    /**
     * 更新匹配中心的匹配新用户商品占比
     * @param matchBuyNewUserRate 
     */
    void resetMatchBuyNewUserRate(String matchBuyNewUserRate);
    
    /**
     * 重新初始化商品匹配引擎
     * @param stockCode
     */
    void reInitTradeCenter(String stockCode);
    
    
    Executor getAsyncMatchExecutor();
    
}
